// Transaction-unsafe testcase from TM TS.
// { dg-options -fgnu-tm }

struct S {
  virtual ~S();
};
void f() transaction_safe {
  S s;
} // { dg-error "unsafe" "invocation of unsafe destructor" }

int g(int x) { // is transaction-safe
  if (x <= 0)
    return 0;
  return x + g(x-1);
}
